From: oreo639 Date: Mon, 27 Jun 2022 00:56:48 +0000 (-0700) Subject: ibusManager: Pass on envrionment variables to ibus-daemon X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~461^2^2~290 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=be524776108da5a2762ccea1a47c1bf49493feea;p=gnome-shell.git ibusManager: Pass on envrionment variables to ibus-daemon Previously only DISPLAY was being passed on to ibus, which results in issues with missing the WAYLAND_DISPLAY or the DBUS_SESSION_BUS_ADDRESS environemnt variables for example. Part-of: --- diff --git a/js/misc/ibusManager.js b/js/misc/ibusManager.js index c1e73d008..420459b76 100644 --- a/js/misc/ibusManager.js +++ b/js/misc/ibusManager.js @@ -90,11 +90,25 @@ var IBusManager = class { this._spawn(Meta.is_wayland_compositor() ? [] : ['--xim']); } + _tryAppendEnv(env, varname) { + const value = GLib.getenv(varname); + if (value) + env.push(`${varname}=${value}`); + } + _spawn(extraArgs = []) { try { let cmdLine = ['ibus-daemon', '--panel', 'disable', ...extraArgs]; let env = []; + this._tryAppendEnv(env, 'DBUS_SESSION_BUS_ADDRESS'); + this._tryAppendEnv(env, 'WAYLAND_DISPLAY'); + this._tryAppendEnv(env, 'HOME'); + this._tryAppendEnv(env, 'LANG'); + this._tryAppendEnv(env, 'LC_CTYPE'); + this._tryAppendEnv(env, 'COMPOSE_FILE'); + this._tryAppendEnv(env, 'DISPLAY'); + GLib.spawn_async( null, cmdLine, env, GLib.SpawnFlags.SEARCH_PATH,